package com.ld.control.business.process.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ld.control.business.process.model.ProcessNodeExampleModel;
import com.ld.control.business.process.vo.resp.NodeExampleStatusResp;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 任务流程节点实例表 Mapper 接口
 * </p>
 *
 * @author wangfeng
 * @since 2024-05-21
 */
public interface ProcessNodeExampleMapper extends BaseMapper<ProcessNodeExampleModel> {

    /**
     * 根据流程实例id查询节点列表
     * @param processExampleId
     * @return
     */
    List<ProcessNodeExampleModel> selectListByProcessExampleId(@Param("processExampleId") Long processExampleId);


    /**
     * 根据sourceNodeId和processExampleId获取节点列表
     * @param sourceNodeId
     * @param processExampleId
     * @return
     */
    List<ProcessNodeExampleModel> selectListBySourceNodeIdAndProcessExampleId(@Param("sourceNodeId") String sourceNodeId, @Param("processExampleId") Long processExampleId);

    /**
     * 根据任务id和状态查询一批指定状态的节点列表
     * @param taskExampleId
     * @param status
     * @return
     */
    List<ProcessNodeExampleModel> selectListByTaskExampleIdAndStatus(@Param("taskExampleId") Long taskExampleId, @Param("status") Integer status);

    /**
     * 查询某个流程下所有设备节点
     * @param processExampleId
     * @return
     */
    List<NodeExampleStatusResp> selectListByProcessExampleIdAndNodeFlag(@Param("processExampleId") Long processExampleId);


    List<ProcessNodeExampleModel> selectListByParentId(@Param("parentId") Long parentId);

}
